
// 使用 async/await

const { resolve } = require("path");

// 使得异步代码看起来更像同步代码

// 基本语法
// async function doSomethingAstnc() {
//     try {
//         const result = await asyncOperation();
//     } catch (error) {
//         console.error('错误：', error);
//     }
// }
// doSomethingAstnc()


// 使用async/await 改装链式调用案例

// 模拟的异步操作函数
function doSomething() {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            console.log('完成了 doSomething');
            resolve('结果1')
        }, 1000);
    })
}

function doSomethingElse(result) {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            console.log('完成了 doSomethingElse', '接收到：', result);
            resolve('结果2')
        }, 1000);
    })
}

function doThirdThing(result) {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            console.log('完成了 doThirdThing', '接收到：', result);
            resolve('结果3')
        }, 1000);
    })
}

// 使用 async/awiat 实现异步操作

async function executeTasks() {
    try {
        const result = await doSomething()
        const newResult = await doSomethingElse(result)
        const finalResult = await doThirdThing(newResult)
        console.log('最终结果：', finalResult);

    } catch (error) {
        console.error('发生错误：', error);

    }
}

// 调用异步函数
executeTasks()